version: '3'
services:
emqx:
image: emqx/emqx:5.8.6
container_name: emqx-mqtt
ports:
- "1886:1883" # MQTT 端口
- "8886:8883" # MQTT over SSL
- "8086:8083" # WebSocket 端口
- "18086:18083" # Web 管理后台端口
- "8087:8084" # WebSocket SSL 端口
- "18087:18084" # Dashboard SSL 端口
environment:
- EMQX_ALLOW_ANONYMOUS=off
- EMQX_HTTP_BASIC_AUTH_USERNAME=admin
- EMQX_HTTP_BASIC_AUTH_PASSWORD=YH_6688
- EMQX_DASHBOARD__DEFAULT_PASSWORD=YH_6688
- EMQX_NAME=emqx
- EMQX_HOST=localhost
# ---------- MQTT over SSL (8883) ----------
- EMQX_LISTENERS__SSL__DEFAULT__BIND=8883
- EMQX_LISTENERS__SSL__DEFAULT__SSL_OPTIONS__CERTFILE=/etc/emqx/certs/fullchain.pem
- EMQX_LISTENERS__SSL__DEFAULT__SSL_OPTIONS__KEYFILE=/etc/emqx/certs/privkey.pem
# WebSocket SSL 配置
- EMQX_LISTENERS__WSS__DEFAULT__BIND=8084
- EMQX_LISTENERS__WSS__DEFAULT__SSL_OPTIONS__CERTFILE=/etc/emqx/certs/fullchain.pem
- EMQX_LISTENERS__WSS__DEFAULT__SSL_OPTIONS__KEYFILE=/etc/emqx/certs/privkey.pem
# Dashboard HTTPS 配置
- EMQX_DASHBOARD__LISTENERS__HTTPS__DEFAULT__BIND=18084
- EMQX_DASHBOARD__LISTENERS__HTTPS__DEFAULT__SSL__CERTFILE=/etc/emqx/certs/fullchain.pem
- EMQX_DASHBOARD__LISTENERS__HTTPS__DEFAULT__SSL__KEYFILE=/etc/emqx/certs/privkey.pem
volumes:
- ./emqx.conf:/etc/emqx/emqx.conf
- ./emqx_data:/opt/emqx/data
- ./certs:/etc/emqx/certs # 挂载证书目录
restart: unless-stopped